//对应axios进行二次封装
import axios from "axios";
//引入进度条
import nProgress from "nprogress";
//引入进度条样式
import 'nprogress/nprogress.css';
//start:进度条开始 done：进度条结束
import store from "@/store"

//1.利用axios对象的方法create，去创建一个axios对象
//2.request就是axios，只是配置一下
const requests = axios.create({
    //配置对象
    //基础路径,发请求的时候，路径当中会出现api
    baseURL:'http://gmall-h5-api.atguigu.cn/api',
    //代表请求超时时间5s
    timeout:5000,

});

//请求拦截器：在发送请求之前，请求拦截拦截器可以检测的到，可以在请求发出去之前做一些事情
requests.interceptors.request.use((config)=>{
    if(store.state.Detail.uuid_token){
      // 给请求头添加一个字段
      config.headers.userTempId = store.state.Detail.uuid_token
    }
    nProgress.start//进度条开始
    return config
})

// //响应拦截器
// requests.interceptors.request.use((res)=>{
//     //成功的回调函数：服务器相应数据回来以后，响应拦截器可以检测到，可以做一些事情
//     nProgress.done()
//     // return Promise.reject(res);
// },(error)=>{
//     //响应失败的回调函数
//     console.log("响应失败"+error)
//     // return Promise.reject(new Error('faile'));
// });

//响应拦截器----当服务器手动请求之后，做出响应（相应成功）会执行的
requests.interceptors.response.use(
    (res) => {
      //进度条结束
      nProgress.done();
      //相应成功做的事情
      return res.data;
    },
    (err) => {
      alert(err);
    }
  );
export default requests;